﻿/*
=================表单字段操作=====================================================================================================
//FormInit(FormFieldById:通过ID找到的对象,FormFieldByName:通过名字找到的对象,FormFieldValue:初始值)		//表单字段初始化
//FormField(obj:form1对象,FieldName:字段名参数,FieldValue:字段值)										//获取字段及值，保存到数组
//callback(res)																							//响应保存操作
//Save(KeyValue)																						//保存值
=================================================================================================================================
*/

/*表单字段初始化 FormInit(通过ID找到的对象,通过名字找到的对象,值,说明)*/
function FormInit(FormFieldById,FormFieldByName,FormFieldValue)
{
	if(FormFieldById=='[object]')
	{	 
	    var r=document.getElementById(FormFieldById.id+"_0");   
	    if(r=='[object]')//ECheckBox对象的赋值	
	    {   
	        var i=1;
	        while(r)
	        {
	            FormFieldValue=','+FormFieldValue+',';
				if(FormFieldValue.indexOf(','+r.value+',')>=0)			
					r.checked='checked';
				else
					r.checked='';
				r=document.getElementById(FormFieldById.id+"_"+i);
				i++;
	        }	    
	    }
	    else if(FormFieldById.type=='radio'||FormFieldById.type=='checkbox')
		{		
			for(var i=0;i<FormFieldByName.length;i++)
			{	
				FormFieldValue=','+FormFieldValue+',';
				if(FormFieldValue.indexOf(','+FormFieldByName[i].value+',')>=0)			
					FormFieldByName[i].checked='checked';
				else
					FormFieldByName[i].checked='';
			}
		}							
		else
		{	
			FormFieldById.value=FormFieldValue;					
		}
	}
}

/*表单字段说明 FormInit(通过ID找到的对象,通过名字找到的对象,值,说明)*/
function FormFieldExplain(FormFieldById,FormFieldByName,FormFieldName,FormFieldExplain)
{
	if(FormFieldById=='[object]')
	{	
		if(FormFieldById.type=='radio'||FormFieldById.type=='checkbox')
		{		
			for(var i=0;i<FormFieldByName.length;i++)
			{
				FormFieldByName[i].title="header=["+FormFieldName+"] body=["+FormFieldExplain+"]";
			}
		}							
		else
		{			
			FormFieldById.title="header=["+FormFieldName+"] body=["+FormFieldExplain+"]";
		}
	}
}

/*Frame初始化 及字段 只读 写 */
function FrameInit(prefix,obj,sreadfield,swritefield)
{	
	sreadfield=","+sreadfield+",";
	swritefield=","+swritefield+",";
	
	var el=obj;
	
	for(var i=0;i<el.length;i++)
	{	
		if(el[i].name!=undefined && el[i].name.indexOf(prefix)==0)
		{			
			var FieldName=","+el[i].name.substring(prefix.length)+",";
			var FormFieldById=document.getElementById(el[i].name);
			
			//var value=(FormFieldById.value!=undefined)?FormFieldById.value:"";
			var value=(FormFieldById!=null&&FormFieldById.value!=undefined)?FormFieldById.value:"";
			
			if(sreadfield.indexOf(FieldName)!=-1)//只读
			{
				el[i].disabled='false';	
				if(FormFieldById!=null&&FormFieldById.framepara!=undefined)		
					FormFieldById.src=FormFieldById.framepara+"&value="+escape(value)+"&readonly=true";				
			}
			else if(swritefield.indexOf(FieldName)!=-1)//可读写
			{				
				if(FormFieldById!=null&&FormFieldById.framepara!=undefined)				
					FormFieldById.src=FormFieldById.framepara+"&value="+escape(value);				
			}
			else //不可见
			{
				if(el[i].type=="radio"||el[i].type=="checkbox"||el[i].type=="select-one"||el[i].type=="select-multiple")	//不可见
				{						
					el[i].parentNode.style.visibility="hidden";
					if(el[i].type=="select-one"||el[i].type=="select-multiple")	el[i].NoDisplay=true;
				}
				else	//不可见
				{	
					if(el[i]!=null&&el[i].style!=undefined)	
					    el[i].style.visibility="hidden";
					    //else
					   // alert(typeof(el[i].style)=="undefined")
					if(FormFieldById!=null&&FormFieldById.framepara!=undefined)	
						FormFieldById.style.visibility="hidden";
				}
			}
		}
	}
}
/*Frame只读*/
function FrameReadOnly(prefix,obj)
{
	var el=obj;
	
	for(var i=0;i<el.length;i++)
	{		
		if(el[i].name!=undefined && el[i].name.indexOf(prefix)==0)
		{	
			var FormFieldById=document.getElementById(el[i].name);
			var value=(FormFieldById.value!=undefined)?FormFieldById.value:"";
			
			if(FormFieldById.framepara!=undefined)		
				FormFieldById.src=FormFieldById.framepara+"&value="+escape(value)+"&readonly=true";			
		}
	}
}
/*取字段及值*/
function FormField(prefix,obj,FieldName,FieldValue)
{	
	var el=obj;
	var j=FieldName.length;
	
	for(var i=0;el!=null&&i<el.length;i++)
	{
		if(el[i].name!=undefined && el[i].name.indexOf(prefix)==0)//只取FormField_开头的表单字段
		{
			if(el[i].type=="radio"||el[i].type=="checkbox") 
			{
				for(var k=0;k<FieldName.length;k++)//从字段名数组中查找是否存在该复选框合并
				{					
					if(FieldName[k]==el[i].name.substring(prefix.length).split("$")[0])//找到
					{
						if(el[i].checked)//选中
						{
							if(FieldValue[k]!="")
								FieldValue[k]+=","+(el[i].value!="on"?el[i].value:"1");
							else
								FieldValue[k]=(el[i].value!="on"?el[i].value:"1");
						}
						break;
					}
				}
				if(k==FieldName.length)//没找到
				{
					FieldName[j]=el[i].name.substring(prefix.length).split("$")[0];					
					if(el[i].checked)
						FieldValue[j]=(el[i].value!="on"?el[i].value:"1");  //.net自带服务器控件CheckBox CheckBoxList在客户端未显示值value，选中显示为on
					else
						FieldValue[j]="";
					j++;
				}
			}
			else//select-one text hidden
			{
				FieldName[j]=el[i].name.substring(prefix.length);
				var value=el[i].value;				
				if(value==undefined)	//针对框架取值
				{
					//var FormFieldById=document.getElementById(el[i].name);						
					//value=(FormFieldById.value!=undefined)?FormFieldById.value:"";		
					var FormFieldById=document.getElementsByName(el[i].name)[0];
					value=FormFieldById.getAttribute("value");
					value=(value!=undefined)?value:"";											
				}
				
				FieldValue[j]=value;
				j++;				
			}
		}
	}
}

function CheckPrompt(message)
{
	return "<IMG src='../Images/error.gif' align='absMiddle'>&nbsp;" + message;
}

function ListPrompt(message) {
	
	ListPromptTxt(CheckPrompt(message));
}

function ListPromptTxt(message) {
	
	var Err_PromPt=document.getElementById("Err_PromPt");
	if(Err_PromPt==null)	
		try{Err_PromPt=parent.document.getElementById('popEditPrompt');}catch(e){}		
	else
	{	
		$("#Err_PromPt").show();
		$("#Err_PromPt").click(function(){$(this).hide();});
		Err_PromPt.innerHTML="";	    
	}
	Err_PromPt.innerHTML=message;
}

var CurObjActive=true;		//当前对象是否允许连续操作
var WindowClose=true;		//操作成功当前窗口关闭

/*响应保存操作*/
function callback(res)
{	
	var Err_PromPt=document.getElementById("Err_PromPt");
	
	if(Err_PromPt==null)	
		try{Err_PromPt=parent.document.getElementById('popEditPrompt');}catch(e){}
	else
	{	
		$("#Err_PromPt").click(function(){$(this).hide();});
	    Err_PromPt.innerHTML="";	    
	}
	
	CurObjActive=true;	//激活操作
	
    if (res == null) { layui.layer.msg("系统操作失败");return;}
	
	if(res.code=="0001")//操作：不关闭、提示（如失败）
	{
        layui.layer.msg(res.message);
	}
	if(res.code=="0000")//操作：关闭、提示、刷新（成功）
	{
		var isReturn=false;
		try
		{	
			//调用外部函数	
			isReturn = SaveSuccessCallBack(res);
		}catch(e){}
		if(isReturn) return;
        
        layui.layer.msg(res.message, {
            time: 500 //2秒关闭（如果不配置，默认是3秒）
        }, function () {
            if (WindowClose) parent.HideModal('popEdit');
            if (parent.GoPage) parent.GoPage(parent.CurPage);
        });
             
		//try{		    
		//	if(WindowClose) parent.HideModal('popEdit');			
		//	parent.GoPage(parent.CurPage);
		//}catch(e)
		//{			
		//    try{
		//        parent.parent.Head.Refresh1_Message(false);
		//        parent.win.freshallExcept(parent.win.currentwin);				    
		//		parent.win.removewin(parent.win.currentwin);				
		//		//parent.win.freshall);							
		//	}catch(e)
		//	{
		//		if(WindowClose) window.close();
		//	}
			
		//}
	}
	if(res.code=="0002")//不操作
	{							
	}
	if(res.code=="0003")//错误信息提示
	{
	    //if (Err_PromPt != null) {
		   // Err_PromPt.innerHTML = res.message;		    
		   // $("#Err_PromPt").show();
	    //} else {	
        
		var isReturn=false;
		try
		{	
			//调用外部函数	
			isReturn =  SaveFailCallBack(res);
		}catch(e){}
        if (isReturn) return;
        if (res.message.substring(0, 1) == "<")
            layui.layer.msg(res.message.substring(55));
        else
            layui.layer.msg(res.message);
		//    alert(res.message.replace("<IMG src='../Images/error.gif' align='absMiddle'>&nbsp;",""));
	    //}
		    
	}	
	if(res.code=="0004")
	{
		try
		{	
			//调用外部函数	
			SaveCallBack(res);
		}catch(e){}
	}
}

/*保存*/
function Save(prefix,id,keyCode,url)	//多个前缀以逗号分隔
{
    var indexs = layer.load();
	if(CurObjActive)
	{
	    var isReturn=false;
		try {
			isReturn =SaveBeforeCallBack();
		}catch(e){}
        if (isReturn) { layer.close(indexs); return; }
		CurObjActive=false;
		fieldName=new Array();
		fieldValue=new Array();
		
		var prefixs=prefix.split(",");	
		
		for(var i=0;i<prefixs.length;i++)			
		{
			FormField(prefixs[i],document.forms[0].elements,fieldName,fieldValue);
			FormField(prefixs[i],window.frames,fieldName,fieldValue);		
		}		
		$.ajax({
			type: 'POST',
	        url: url,
	        data: {	        	
	        	//id:id,
	        	//keyCode:keyCode,
	        	fieldName:fieldName,
	        	fieldValue:fieldValue,		
	        	t:new Date().getTime()
	        },
	        dataType: "json",
            success: function (data) {
                layer.close(indexs);
	        	callback(data);	        		   
	        }
	    });			
	}		
}
/*加载时焦点定位*/
function LoadFocus()
{
    //PointerPosInit();

	$(".poppan td").each(function(){
		var html=$(this).html();
		if(html.indexOf("*")!=-1) {
			html = html.replace("*", "<font style='color:red'>*</font>");
			$(this).html(html);
		}
	});
	$(".poppan td input[type='text'][readonly]").css({"background-color":"#f2f2f2","color":"#000","border":"#ccc 1px solid"});

    var obj=document.getElementsByTagName('INPUT');
    for(i=0;i<obj.length;i++)
        if(obj[i].type=='text'&&obj[i].type!='hidden'&&obj[i].disabled!=true&&obj[i].readOnly!=true)
        {
            try
		    {
		        if(obj[i].onfocus==null) obj[i].focus();		    
                break;
            }catch(e){}
        }
}
function openWin(url, name) {
    if(typeof parent.AddWin == 'function') {
      parent.AddWin(url, name);
    } else if(typeof parent.parent.AddWin == 'function') {
      parent.parent.AddWin(url, name);
    }
}

